home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs03.d81 / comic.sda / COMIC FILER V5.0 (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  13KB  |  412 lines

  1. 10 REM *************************               *                       *
  2. 20 REM * THE COMIC BOOK FILER  *               *       PROGRAM         *
  3. 30 REM *                       *               *     WRITTEN BY        *
  4. 40 REM *     MICHAEL ASH       *               *************************
  5. 50 DIM DA$(750),T$(50),TS(50),C(20),GR$(10),VP(10)
  6. 60 R$=CHR$(13)
  7. 70 FOR X=0TO9:READ GR$(X),VP(X):NEXT X
  8. 80 DATA "[196]ON'T [195]ARE",0,"[205]INT",1.05,"[206]EAR [205]INT",1,"[214]ERY [198]INE",.87,"[198]INE",.69
  9. 90 DATA "[214]ERY [199]OOD",.49,"[199]OOD",.27,"[198]AIR",.11,"[208]OOR",.03,"[195]OVERLESS",.005
  10. 100 POKE 53272,23:POKE 53281,0:PRINTCHR$(5)
  11. 110 PRINT"[147]"
  12. 120 PRINT"          [212][200][197] [195][207][205][201][195][160][194][207][207][203] [198][201][204][197][210]"
  13. 130 PRINT"     [1] [204]OAD A [196][193][212][193] [196][201][211][203]"
  14. 140 PRINT"     [2] [195]REATE A [196][193][212][193] [196][201][211][203]"
  15. 150 PRINT"     [3] [210]ENAME A [196][193][212][193] [196][201][211][203]"
  16. 160 PRINT"     [4] [197]XIT [208]ROGRAM"
  17. 170 PRINT" [195]URRENT DISK IN MEMORY :":PRINT"";A$
  18. 180 GET Z$:Z=VAL(Z$)
  19. 190 IF Z<1 OR Z>4 THEN 180
  20. 200 ON Z GOTO 210,720,3720,4110
  21. 210 OPEN1,8,15
  22. 220 GOSUB3900
  23. 230 CLOSE 1
  24. 240 PRINT"[147]"
  25. 250 PRINT"          [212][200][197] [195][207][205][201][195][160][194][207][207][203] [198][201][204][197][210]"
  26. 260 PRINT"     [1] [204]OAD A [196][193][212][193] [198][201][204][197]"
  27. 270 PRINT"     [2] [195]REATE A [196][193][212][193] [198][201][204][197]"
  28. 280 PRINT"     [3] [196]ELETE A [196][193][212][193] [198][201][204][197]"
  29. 290 PRINT"     [4] [210]ETURN TO [205]AIN [205]ENU"
  30. 300 PRINT" [195]URRENT DISK IN MEMORY :":PRINT"";A$
  31. 310 GET Z$:Z=VAL(Z$)
  32. 320 IF Z<1 OR Z>4 THEN 310
  33. 330 ON Z GOTO 900,340,1540,110
  34. 340 PRINT"[147]"
  35. 350 PRINT"          [212][200][197] [195][207][205][201][195][160][194][207][207][203] [198][201][204][197][210]"
  36. 360 PRINT"     [1] [211]MALL : 250 ISSUES OR LESS"
  37. 370 PRINT"     [2] [205]EDIUM : 251 - 500 ISSUES"
  38. 380 PRINT"     [3] [204]ARGE : 501 - 750 ISSUES"
  39. 390 PRINT"     [4] [210]ETURN TO [208]REVIOUS MENU"
  40. 400 GET Z$:Z=VAL(Z$)
  41. 410 IF Z<1 OR Z>4 THEN 400
  42. 420 IF Z = 4 THEN 240
  43. 430 OPEN1,8,15:GOSUB 3900:CLOSE1
  44. 440 FB=600-VAL(B$)-(Z*6+1)
  45. 450 IF FB <(Z*6+1)THEN GOTO4060
  46. 460 T=0
  47. 470 FOR X = 1 TO 50
  48. 480 IF T$(X) = "*****" THEN T=X:X=51
  49. 490 NEXT X:IF T=0 THEN 4060
  50. 500 TS(T)=Z:FS=Z
  51. 510 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  52. 520 PRINT"   [197]NTER THE TITLE OF THE BOOK":INPUT"";Z$
  53. 530 T$(T)=Z$:IF LEN(Z$)>85 THEN T$(T)= LEFT$(Z$,85)
  54. 540 PRINT"     [195]REATING A DATA FILE FOR"
  55. 550 PRINT"";T$(T)
  56. 560 GOSUB 3780
  57. 570 F$="0:CBF.D"+STR$(T)
  58. 580 D$="":FORY=1TO85:D$=D$+"N":NEXTY:D$=D$+R$+D$+R$+LEFT$(D$,80)
  59. 590 OPEN1,8,15:OPEN4,8,4,F$+",L,"+CHR$(254):GOSUB4080
  60. 600 FOR X= 1 TO Z
  61. 610 GOSUB 3860
  62. 620 NEXTX
  63. 630 D$="":FORY=1TO17:D$=D$+"0000A":NEXTY:D$=D$+R$+D$+R$+LEFT$(D$,80)
  64. 640 FOR X= (Z+1) TO (Z*6)
  65. 650 GOSUB 3860
  66. 660 NEXTX:CLOSE4:PRINT" [214]ALIDATING DISK...":PRINT#1,"V"
  67. 670 PRINT "[198]ILE CREATED.":PRINT"[213]SE THE UPDATE OPTIONS TO ENTER "
  68. 680 CLOSE1
  69. 690 PRINT" INFORMATION INTO THE FILE.":PRINT"[208]RESS ANY KEY TO CONTINUE."
  70. 700 GET Z$:IF Z$="" THEN 700
  71. 710 GOTO 240
  72. 720 PRINT"[147]"
  73. 730 PRINT"          [212][200][197] [195][207][205][201][195][160][194][207][207][203] [198][201][204][197][210]"
  74. 740 PRINT"[196]O YOU WISH TO CREATE A NEW DATA DISK?"
  75. 750 PRINT"(Y/N)"
  76. 760 GET Z$
  77. 770 IF Z$="Y" THEN 800
  78. 780 IF Z$="N" THEN 110
  79. 790 GOTO 760
  80. 800 PRINT"[197]NTER A DISK NAME : "
  81. 810 INPUT A$
  82. 820 IF LEN(A$)>85 THEN A$=LEFT$(A$,85)
  83. 830 PRINT"[215]RITING FILES TO DISK..."
  84. 840 OPEN2,8,2,"0:CBF.INFO,S,W":OPEN3,8,3,"0:CBF.TITLES,S,W"
  85. 850 PRINT#2,A$:PRINT#2,"0":CLOSE2
  86. 860 Z=0:FOR X = 1 TO 50:PRINT#3,"*****":PRINT#3,Z:NEXT X:CLOSE3:CLOSE1
  87. 870 PRINT "[198]ILES CREATED.":PRINT"[208]RESS ANY KEY TO CONTINUE"
  88. 880 GET Z$:IF Z$="" THEN 880
  89. 890 GOTO 110
  90. 900 GOSUB 1700:IF Z$="E" THEN 240
  91. 910 F$="CBF.D"+STR$(T):FS=TS(T)
  92. 920 PRINT"[147]"
  93. 930 PRINT"          [212][200][197] [195][207][205][201][195][160][194][207][207][203] [198][201][204][197][210]":PRINT" [208]LEASE [215]AIT"
  94. 940 FOR X=1TO750:DA$(X)="":NEXTX:PRINT"             [193]CCESSING....."
  95. 950 OPEN1,8,15:OPEN4,8,4,F$:GOSUB4080
  96. 960 FORX=1TOFS
  97. 970 GOSUB 4010
  98. 980 FOR Y = 1 TO 250:Z=((X-1)*250+Y):DA$(Z)=MID$(D$,Y,1)
  99. 990 IF DA$(Z) <"0" OR DA$(Z)>"9" THEN DA$(Z)="N"
  100. 1000 NEXT Y
  101. 1010 NEXTX:CLOSE4:CLOSE1
  102. 1020 T$(0)=T$(T):TB=1:IF LEN(T$(0)) < 40 THEN TB = (40-(LEN(T$(0))))/2
  103. 1030 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]":PRINT "";TAB(TB);T$(0)
  104. 1040 PRINT"     [1] [201]SSUE [204]ISTING"
  105. 1050 PRINT"     [2] [199]RADES"
  106. 1060 PRINT"     [3] [210]ENAME [212]ITLE"
  107. 1070 PRINT"     [4] [195]OMPLETE ISSUE INFORMATION":PRINT"     [5] [213]PDATE ISSUES/GRADES"
  108. 1080 PRINT"     [6] [196]ISPLAY/[213]PDATE [208]RICE [199]UIDE"
  109. 1090 PRINT"     [7] [210]ETURN TO [208]REVIOUS [205]ENU"
  110. 1100 GET Z$:Z=VAL(Z$)
  111. 1110 IF Z<1 OR Z>7 THEN GOTO1100
  112. 1120 ON Z GOTO 1130,1290,3650,1420,2060,2790,240
  113. 1130 X=1:W=0:I=0:PRINT"[147]";TAB(TB);T$(0):PRINT
  114. 1140 FOR Y=1TO(250*FS)
  115. 1150 IF DA$(Y)<"0"OR DA$(Y)>"9" THEN 1200
  116. 1160 IF X>10 THEN GOSUB 1250
  117. 1170 I=I+1:PRINT TAB(W);RIGHT$(STR$(Y),4);
  118. 1180 W=W+4
  119. 1190 IF W> 36 THEN X=X+1:W=0:PRINT
  120. 1200 NEXT Y
  121. 1210 PRINT:PRINT" [212]OTAL NUMBER OF [201]SSUES : ";I
  122. 1220 PRINT"[208]RESS ANY KEY TO CONTINUE."
  123. 1230 GETZ$:IF Z$="" THEN GOTO 1230
  124. 1240 GOTO 1030
  125. 1250 PRINT"[208]RESS ANY KEY TO CONTINUE."
  126. 1260 GETZ$:IF Z$="" THEN GOTO 1260
  127. 1270 X=1:W=0:PRINT"[147]";TAB(TB);T$(0):PRINT
  128. 1280 RETURN
  129. 1290 PRINT"[147]":PRINT"         [160][212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  130. 1300 PRINT"                  [199][210][193][196][197][211]":PRINT TAB(TB);T$(0):PRINT
  131. 1310 PRINT"[215]HICH ISSUE WOULD YOU LIKE TO START":INPUT" WITH? :";S
  132. 1320 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]":X=S
  133. 1330 IF X<1 OR X>(FS*250)THEN 1030
  134. 1340 PRINT"                  [199][210][193][196][197][211]":PRINT"";TAB(TB);T$(0):GOSUB 1850
  135. 1350 PRINT"[201]SSUE #             [199]RADE "
  136. 1360 PRINT"";S;TAB(20);G$
  137. 1370 PRINT" CONTINUE WITH NEXT ISSUE? (Y/N)"
  138. 1380 GET Z$:IFZ$="" THEN 1380
  139. 1390 IF Z$="Y" THEN S=S+1:GOTO 1320
  140. 1400 IF Z$="N" THEN GOTO 1030
  141. 1410 GOTO 1380
  142. 1420 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  143. 1430 PRINT"        [195][207][205][208][204][197][212][197][160][201][211][211][213][197][160][201][206][198][207][210][205][193][212][201][207][206]"
  144. 1440 PRINT"[215]HICH ISSUE WOULD YOU LIKE TO START":INPUT" WITH? :";S
  145. 1450 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]":PRINT"";TAB(TB);T$(0):X=S
  146. 1460 IF X<1 OR X>(FS*250) THEN 1030
  147. 1470 PRINT" [201][211][211][213][197][160]#       [199][210][193][196][197]      [214][193][204][213][197]       ":PRINT:GOSUB 1850:GOSUB1890
  148. 1480 PRINT"[145]";TAB(1);S;TAB(15);G$;TAB(26);"$";V
  149. 1490 PRINT" [208]RESS THE <[211][208][193][195][197][194][193][210]> FOR NEXT ISSUE"
  150. 1500 PRINT"OR [208]RESS ANY OTHER KEY TO EXIT."
  151. 1510 GET Z$:IF Z$="" THEN 1510
  152. 1520 IF Z$=" " THEN S=S+1:GOTO 1450
  153. 1530 GOTO 1030
  154. 1540 GOSUB 1700:IF Z$="E" THEN 240
  155. 1550 F$="CBF.D"+STR$(T)
  156. 1560 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  157. 1570 PRINT"            [196][197][204][197][212][197][160][193][160][196][193][212][193][160][198][201][204][197]"
  158. 1580 PRINT"[196]ELETE ";T$(T);"?":PRINT "  [193]RE YOU SURE (Y/N)"
  159. 1590 GETZ$:IF Z$="" THEN 1590
  160. 1600 IF Z$<>"Y" THEN 240
  161. 1610 OPEN1,8,15:T$(T)="*****":TS(T)=0:PRINT#1,"S:"+F$:PRINT#1,"V"
  162. 1620 OPEN3,8,3,"@0:CBF.TITLES,S,W"
  163. 1630 B=0:FORX=1TO50:PRINT#3,T$(X):PRINT#3,TS(X)
  164. 1640 IF TS(X) <> 0 THEN B=B+(TS(X)*6+1)
  165. 1650 NEXTX
  166. 1660 CLOSE3:B$=STR$(B)
  167. 1670 OPEN2,8,2,"@0:CBF.INFO,S,W":PRINT#2,A$:PRINT#2,B$:GOSUB4080:CLOSE2
  168. 1680 CLOSE1
  169. 1690 GOTO 240
  170. 1700 FORX=1TO5
  171. 1710 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  172. 1720 PRINT"                 [212][201][212][204][197][211]":Z$=""
  173. 1730 PRINT:FORY=1TO10
  174. 1740 W = (X-1)*10+Y
  175. 1750 PRINT TAB(2);"[";W;"] ";T$(W):NEXTY
  176. 1760 PRINT TAB(2);"[0] [206]EXT [208]AGE ":PRINT TAB(2);"[197]NTER [E] TO [197]XIT"
  177. 1770 INPUT Z$:Z=VAL(Z$)
  178. 1780 IF Z$="E" THEN 1820
  179. 1790 IF Z=0 THEN GOTO 1830
  180. 1800 IF (Z<1 OR Z>50) OR T$(Z)="*****" THEN 1710
  181. 1810 T=Z
  182. 1820 RETURN
  183. 1830 NEXTX
  184. 1840 X=0:GOTO 1700
  185. 1850 GV=0:G$="[206]/[193]":IF DA$(X)<"0" OR DA$(X) >"9" THEN 1880
  186. 1860 G=VAL(DA$(X))
  187. 1870 G$=GR$(G):GV=VP(G)
  188. 1880 RETURN
  189. 1890 OPEN1,8,15:OPEN4,8,4,F$:GOSUB 4080
  190. 1900 RN=FS+1:Y=INT((S-1)/50):RN=RN+Y
  191. 1910 X=S-Y*50
  192. 1920 RP=1:Z=X:IF X>17 THEN RP=86:Z=X-17:IF X>34 THEN RP=172:Z=X-34
  193. 1930 PRINT#1,"P"CHR$(100)CHR$(RN)CHR$(0)CHR$(RP)
  194. 1940 INPUT#4,Y$
  195. 1950 PV$=MID$(Y$,(((Z-1)*5)+1),5):GOSUB4080
  196. 1960 CLOSE 4:CLOSE1
  197. 1970 V=0:PV=0:FOR W = 0 TO 3:V$=MID$(PV$,(4-W),1)
  198. 1980 IF V$>="0" AND V$<="9" THEN Y=VAL(V$):GOTO 2000
  199. 1990 Y=ASC(V$)-55
  200. 2000 PV=PV + (16^W) * Y
  201. 2010 NEXT W
  202. 2020 V$=RIGHT$(PV$,1)
  203. 2030 PV=PV+((ASC(V$)-65)*.05)
  204. 2040 V=GV*PV
  205. 2050 RETURN
  206. 2060 PRINT"[147]":PRINT"           [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  207. 2070 PRINT"                  [213][208][196][193][212][197]":PRINT"";TAB(TB);T$(0)
  208. 2080 PRINT"     [1] [193]DD ISSUES / [213]PDATE [199]RADES":PRINT"     [2] [196]ELETE ISSUES"
  209. 2090 PRINT "     [3] [211]AVE & [197]XIT"
  210. 2100 PRINT "     [4] [197]XIT [207]NLY  "
  211. 2110 GET Z$:Z=VAL(Z$):IF Z<1 OR Z>4 THEN 2110
  212. 2120 ON Z GOTO 2130,2320,2640,1030
  213. 2130 PRINT"[147]":PRINT"           [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  214. 2140 PRINT"       [193][196][196][160][201][211][211][213][197][211] / [213][208][196][193][212][197] [199][210][193][196][197][211]":PRINT"";TAB(TB);T$(0)
  215. 2150 PRINT"     [1] [193]DD/[213]PDATE A SINGLE ISSUE "
  216. 2160 PRINT"     [2] [193]DD/[213]PDATE A RUN OF ISSUES"
  217. 2170 PRINT"     [3] [210]ETURN TO [213]PDATE [205]ENU"
  218. 2180 GET Z$:Z=VAL(Z$):IF Z<1 OR Z>3 THEN 2180
  219. 2190 ON Z GOTO 2200,2250,2060
  220. 2200 PRINT"[147]":PRINT"           [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  221. 2210 PRINT"       [193][196][196][160][201][211][211][213][197][211] / [213][208][196][193][212][197] [199][210][193][196][197][211]":PRINT"";TAB(TB);T$(0)
  222. 2220 INPUT" [193]DD/[213]PDATE WHICH ISSUE ";Y:IF Y>=1 AND Y<=FS*250THEN Z=Y:GOTO 2510
  223. 2230 IF Y>=1 AND Y<=(FS*250) THEN Z=Y:GOTO 2510
  224. 2240 GOTO 2130
  225. 2250 PRINT"[147]":PRINT"           [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  226. 2260 PRINT"       [193][196][196][160][201][211][211][213][197][211] / [213][208][196][193][212][197] [199][210][193][196][197][211]":PRINT"";TAB(TB);T$(0)
  227. 2270 PRINT" [193]DD/[213]PDATE A RUN":INPUT"          STARTING WITH ISSUE :";Y
  228. 2280 IF Y<1 OR Y>(FS*250) THEN 2130
  229. 2290 INPUT"          [197]NDING WITH ISSUE   :";Z
  230. 2300 IF (Z>=1 AND Z<=FS*250) AND Y<Z THEN GOTO 2510
  231. 2310 GOTO 2130
  232. 2320 PRINT"[147]":PRINT"           [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  233. 2330 PRINT"              [196][197][204][197][212][197][160][201][211][211][213][197][211]":PRINT"";TAB(TB);T$(0)
  234. 2340 PRINT"     [1] [196]ELETE A SINGLE ISSUE ":PRINT"     [2] [196]ELETE A RUN OF ISSUES"
  235. 2350 PRINT"     [3] [210]ETURN TO [213]PDATE [205]ENU"
  236. 2360 GET Z$:Z=VAL(Z$):IF Z<1 OR Z>3 THEN 2360
  237. 2370 ON Z GOTO 2380,2430,2060
  238. 2380 PRINT"[147]":PRINT"           [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  239. 2390 PRINT"              [196][197][204][197][212][197][160][201][211][211][213][197][211]":PRINT"";TAB(TB);T$(0)
  240. 2400 INPUT" [196]ELETE WHICH ISSUE :";Y:IF Y<=FS*250 AND Y>0 THEN DA$(Y)="N"
  241. 2410 IF Y<=750 AND Y>=1 THEN DA$(Y)="N"
  242. 2420 GOTO 2320
  243. 2430 PRINT"[147]":PRINT"           [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  244. 2440 PRINT"              [196][197][204][197][212][197][160][201][211][211][213][197][211]":PRINT"";TAB(TB);T$(0)
  245. 2450 PRINT" [196]ELETE A RUN STARTING WITH ISSUE :":INPUT Y
  246. 2460 IF Y<1 OR Y>FS*250 THEN 2320
  247. 2470 INPUT"            [197]NDING WITH ISSUE   :";Z
  248. 2480 IF (Z>=1 AND Z<=FS*250) AND(Y<Z)THEN GOTO 2500
  249. 2490 GOTO 2320
  250. 2500 FOR X=Y TO Z:DA$(X)="N":NEXTX:GOTO 2320
  251. 2510 FOR X=Y TO Z
  252. 2520 PRINT"[147]":PRINT"           [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  253. 2530 PRINT"                 [199][210][193][196][197][211]":PRINT"";TAB(TB);T$(0)
  254. 2540 PRINT "     [1] [205]INT       [6] [199]OOD"
  255. 2550 PRINT "     [2] [206]EAR [205]INT  [7] [198]AIR"
  256. 2560 PRINT "     [3] [214]ERY [198]INE  [8] [208]OOR"
  257. 2570 PRINT "     [4] [198]INE       [9] [195]OVERLESS"
  258. 2580 PRINT "     [5] [214]ERY [199]OOD  [0] [196]ON'T [195]ARE"
  259. 2590 PRINT " [211]ELECT A GRADE FOR ISSUE ";X
  260. 2600 GET Z$: IF Z$ <"0" OR Z$>"9" THEN 2600
  261. 2610 DA$(X) = Z$
  262. 2620 NEXT X
  263. 2630 GOTO 2130
  264. 2640 PRINT"[147]":PRINT"           [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  265. 2650 PRINT"          [213][208][196][193][212][197][160][201][211][211][213][197][211]/[199][210][193][196][197][211]"
  266. 2660 PRINT"     [208]LEASE [215]AIT":PRINT "    [213]PDATING ...."
  267. 2670 OPEN1,8,15:OPEN4,8,4,F$:GOSUB 4080
  268. 2680 FORX=1TO(FS):D$="":D1$="":D2$="":D3$=""
  269. 2690 FORY=1TO85:W=((X-1)*250)+Y:D1$=D1$+DA$(W):NEXTY
  270. 2700 FORY=86TO170:W=((X-1)*250)+Y:D2$=D2$+DA$(W):NEXTY
  271. 2710 FORY=171TO250:W=((X-1)*250)+Y:D3$=D3$+DA$(W)
  272. 2720 NEXTY:D$=D1$+R$+D2$+R$+D3$
  273. 2730 GOSUB 3860
  274. 2740 NEXT X
  275. 2750 CLOSE4:CLOSE1
  276. 2760 PRINT "   [213]PDATE [195]OMPLETE.":PRINT"   [208]RESS ANY KEY TO CONTINUE."
  277. 2770 GET Z$:IF Z$ = "" THEN 2770
  278. 2780 GOTO 1030
  279. 2790 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  280. 2800 PRINT"           [213][208][196][193][212][197][160][208][210][201][195][197][160][199][213][201][196][197]"
  281. 2810 OPEN1,8,15:OPEN4,8,4,F$:GOSUB 4080
  282. 2820 PRINT"             [193]CCESSING.....":W=1
  283. 2830 FOR  X=(FS+1) TO (FS*6)
  284. 2840 GOSUB 4010
  285. 2850 FOR Y=1TO50:DA$(W)=MID$(D$,((Y-1)*5)+1,5)
  286. 2860 W=W+1
  287. 2870 NEXTY
  288. 2880 NEXT X:CLOSE4:CLOSE1
  289. 2890 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  290. 2900 PRINT"              [208][210][201][195][197][160][199][213][201][196][197]":PRINT"";TAB(TB);T$(0)
  291. 2910 PRINT"     [1] [196]ISPLAY [208]RICES"
  292. 2920 PRINT"     [2] [213]PDATE A SINGLE ISSUE"
  293. 2930 PRINT"     [3][160][213]PDATE A RUN OF ISSUES"
  294. 2940 PRINT"     [4] [211]AVE [195]HANGES AND [197]XIT"
  295. 2950 PRINT"     [5] [197]XIT ONLY"
  296. 2960 GET Z$:Z=VAL (Z$):IF Z<1 OR Z>5 THEN 2960
  297. 2970 ON Z GOTO 2980,3150,3270,3480,920
  298. 2980 PRINT"[147]":PRINT"          [212][200][197][160][195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  299. 2990 PRINT"              [208][210][201][195][197][160][199][213][201][196][197]":PRINT"";TAB(TB);T$(0)
  300. 3000 INPUT"     [211]TART WITH WHICH ISSUE :";S
  301. 3010 X=S:Z=S+1:PRINT"              [193]CCESSING....."
  302. 3020 IF S>(FS*250) OR S<1  THEN 2890
  303. 3030 IF S=(FS*250) THEN 3050
  304. 3040 IF DA$(X) = DA$(Z) THEN Z=Z+1:IF Z<=(FS*250) THEN 3040
  305. 3050 PV$= DA$(X):GOSUB 1970
  306. 3060 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  307. 3070 PRINT"              [208][210][201][195][197][160][199][213][201][196][197]":PRINT"";TAB(TB);T$(0)
  308. 3080 PRINT"     [201]SSUE #        [208]RICE [199]UIDE [214]ALUE"
  309. 3090 IF Z=S+1 THEN PRINT"";TAB(7);S;TAB(20);"$";PV:GOTO 3110
  310. 3100 PRINT"";TAB(5);S;"-";Z-1;TAB(20);"$";PV
  311. 3110 PRINT" [208]RESS THE <[211]PACEBAR> FOR THE NEXT BLOCK":PRINT" OR ANY OTHER KEY TO EXIT"
  312. 3120 GETZ$:IF Z$="" THEN 3120
  313. 3130 IF Z$<>" " THEN 2890
  314. 3140 S=Z:GOTO3010
  315. 3150 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  316. 3160 PRINT"              [208][210][201][195][197][160][199][213][201][196][197]":PRINT"";TAB(TB);T$(0)
  317. 3170 INPUT"[213]PDATE WHICH ISSUE :";X
  318. 3180 IF X<1 OR X>(FS*250) THEN 2890
  319. 3190 PV$=DA$(X):GOSUB 1970
  320. 3200 PRINT"[147]":PRINT"          [212][200][197][160][195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  321. 3210 PRINT"              [208][210][201][195][197][160][199][213][201][196][197]"
  322. 3220 PRINT" [195]URRENT VALUE OF ISSUE ";X;" : $";PV
  323. 3230 INPUT " [197]NTER NEW VALUE : $";V
  324. 3240 GOSUB 3380
  325. 3250 DA$(X)=P$
  326. 3260 GOTO 2890
  327. 3270 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  328. 3280 PRINT"           [213][208][196][193][212][197] [208][210][201][195][197][160][199][213][201][196][197]":PRINT"";TAB(TB);T$(0)
  329. 3290 INPUT " [211]TARTING WITH ISSUE :";S
  330. 3300 IF S<1 OR S>FS*250 THEN 2890
  331. 3310 INPUT" [197]NDING WITH ISSUE :";S1
  332. 3320 IF (S1<1 OR S1>FS*250) OR S1<S THEN 2890
  333. 3330 INPUT " [197]NTER NEW VALUE : $";V
  334. 3340 PRINT " [208]ROCCESSING...     "
  335. 3350 GOSUB 3380:FOR X = S TO S1
  336. 3360 DA$(X)=P$:NEXT X
  337. 3370 GOTO 2890
  338. 3380 P$="":V1=INT(V):V2=((V-V1)+.01)/.05:IF V1>65536 THEN V1 = 65535
  339. 3390 Y=V1/16:Z=V1-INT(Y)*16:V1=INT(Y)
  340. 3400 IF Z< 10 THEN P$=RIGHT$(STR$(Z),1)+P$:GOTO 3420
  341. 3410 P$=CHR$(Z+55)+P$
  342. 3420 IF V1= 0 THEN GOTO 3440
  343. 3430 GOTO 3390
  344. 3440 IF LEN(P$)=4 THEN GOTO 3460
  345. 3450 Y=(4-LEN(P$)):FOR X1=1TOY:P$="0"+P$:NEXT  X1
  346. 3460 P$=P$+CHR$(V2+65)
  347. 3470 RETURN
  348. 3480 OPEN1,8,15:OPEN4,8,4,F$:GOSUB 4080
  349. 3490 PRINT"[147]":PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  350. 3500 PRINT"              [208][210][201][195][197][160][199][213][201][196][197]":PRINT"";TAB(TB);T$(0)
  351. 3510 PRINT" [208]LEASE [215]AIT":PRINT " [213]PDATING [208]RICE [199]UIDE ...."
  352. 3520 FOR X=1TO50:T$(X)="":TS(X)=0:NEXTX:A$="":B$="":E1$="":E2$="":E3$="":E4$=""
  353. 3530 W=1:Y$=""
  354. 3540 FOR X= (FS+1) TO (FS*6)
  355. 3550 D$="":D1$="":D2$="":D3$=""
  356. 3560 FOR Z=1TO17:D1$=D1$+DA$(W):DA$(W)="":W=W+1:NEXTZ
  357. 3570 FOR Z=18TO34:D2$=D2$+DA$(W):DA$(W)="":W=W+1:NEXTZ
  358. 3580 FOR Z=35TO50:D3$=D3$+DA$(W):DA$(W)="":W=W+1:NEXTZ
  359. 3590 D$=D1$+R$+D2$+R$+D3$:GOSUB 3860
  360. 3600 NEXTX
  361. 3610 CLOSE4::GOSUB3900:CLOSE1
  362. 3620 PRINT "   [213]PDATE [195]OMPLETE.":PRINT"   [208]RESS ANY KEY TO CONTINUE."
  363. 3630 GET Z$:IF Z$ = "" THEN 3630
  364. 3640 GOTO 920
  365. 3650 PRINT"[147]": PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  366. 3660 PRINT"             [210][197][206][193][205][197][160][212][201][212][204][197]"
  367. 3670 X=1
  368. 3680 IF T$(0)<>T$(X) THEN X=X+1:GOTO 3680
  369. 3690 PRINT" [195]URRENT [212]ITLE [206]AME :":PRINT TAB(TB);T$(0)
  370. 3700 PRINT"[197]NTER [206]EW [212]ITLE [206]AME :":INPUT T$(X)
  371. 3710 GOSUB 3780:CLOSE1:GOTO1020
  372. 3720 PRINT"[147]": PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  373. 3730 PRINT" [195]URRENT DISK : ";A$
  374. 3740 PRINT "[197]NTER NEW DISK NAME : "
  375. 3750 INPUT A$
  376. 3760 OPEN1,8,15:GOSUB3840
  377. 3770 GOTO 110
  378. 3780 OPEN1,8,15
  379. 3790 OPEN3,8,3,"@0:CBF.TITLES,S,W":GOSUB4080
  380. 3800 Y=0:FORX=1TO50:PRINT#3,T$(X):PRINT#3,TS(X):GOSUB 4080
  381. 3810 IF TS(X)<> 0 THEN Y=Y+(TS(X)*6+1)
  382. 3820 NEXTX
  383. 3830 CLOSE3:B$=STR$(Y)
  384. 3840 OPEN2,8,2,"@0:CBF.INFO,S,W":PRINT#2,A$:PRINT#2,B$:GOSUB4080:CLOSE2
  385. 3850 CLOSE1:RETURN
  386. 3860 PRINT#1,"P" CHR$(100) CHR$(X) CHR$(0) CHR$(1):GOSUB 4080
  387. 3870 PRINT#4,D$:GOSUB4080
  388. 3880 PRINT#1,"P" CHR$(100) CHR$(X) CHR$(0) CHR$(1):GOSUB 4080
  389. 3890 RETURN
  390. 3900 PRINT"[147]": PRINT"          [212][200][197] [195][207][205][201][195] [194][207][207][203] [198][201][204][197][210]"
  391. 3910 PRINT"              [193]CCESSING....."
  392. 3920 OPEN2,8,2,"CBF.INFO,S,R":GOSUB 4080
  393. 3930 INPUT#2,A$,B$
  394. 3940 GOSUB 4080:CLOSE2
  395. 3950 PRINT"              [193]CCESSING....."
  396. 3960 OPEN2,8,2,"0:CBF.TITLES,S,R":GOSUB 4080
  397. 3970 FORX=1TO50:INPUT#2,T$(X),TS(X)
  398. 3980 GOSUB 4080:NEXTX
  399. 3990 CLOSE2
  400. 4000 RETURN
  401. 4010 PRINT#1,"P"CHR$(100)CHR$(X)CHR$(0)CHR$(1)
  402. 4020 INPUT#4,D1$,D2$,D3$
  403. 4030 GOSUB 4080:IF VAL(E1$)=51 THEN 4100
  404. 4040 D$=D1$+D2$+D3$:D1$="":D2$="":D3$=""
  405. 4050 RETURN
  406. 4060 PRINT"[147]":PRINT"     [196]ATA [196]ISK [198]ULL!"
  407. 4070 GOTO 4110
  408. 4080 INPUT#1,E1$,E2$,E3$,E4$
  409. 4090 IF VAL(E1$)=50 OR VAL(E1$) <20 THEN RETURN
  410. 4100 PRINT E1$,E2$,E3$,E4$
  411. 4110 END
  412.